package com.water.bs.mapper;

import com.water.bs.pojo.ChangeApply;
import com.water.bs.pojo.ChangeInfo;
import org.apache.ibatis.annotations.Mapper;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

@Mapper
@Repository
public interface UserChangeMapper {
    int makeChange(Map<String,Object> map); //用户创建物品交互

    List<ChangeInfo> qryMyChange(String id); //某个用户的所有chaninfo

    ChangeInfo getChaneInfoById(String id); //查找某一条changeinfo

    int saveChangeInfoPhoto(Map<String,Object> map); //保存修改chaninfo的图片

    int deleteChangeInfo(String id); // 删除某个changeinfo

    List<Map<String,Object> >qryAllChangeXme(String id); //查询除了自己的物品外和申请交换过的所有changeinfo

    int makeApplyChange (Map<String,Object> map); //保存用户发起交换申请

    List<Map<String,Object>> qryMyApply (String id); //查询我申请的交换,第一步通过用户id 结果是ChangeApply 保存了申请物品的ID与被申请物品的id 以及申请人的id 被申请人id 以及本条记录的id

    Map<String,Object> qryMyApply2 (String id);//查询我申请的交换,第2步通过申请物品的ID 结果是applyTitle,applyMessage

    Map<String,Object> qryMyApply3 (String id);//查询我申请的交换,第3步通过被申请物品的ID 结果是respondentTitle,respondentMessage   最后把2个map合并

    List<ChangeApply> qryMyRespondent (String id); //查询我的被申请交换,第一步通过用户id 结果是ChangeApply 保存了申请物品的ID与被申请物品的id 以及申请人的id,被申请人id

    int updateChangeInfo (Map<String,Object>map);

    int cancelMyChangeApply(String changeApplyId);//用户取消自己发起的交换申请 id为 chanapply.id

    int agreeMyChangeRespondent(Map<String,Object>map); //用户同意别人的交换 1.修改changeapply changetype为1

    int agreeMyChangeRespondent2(Map<String,Object>map); //用户同意别人的交换 把其他人申请的相同物品的changetype改为2

    int agreeMyChangeRespondent3(Map<String,Object>map); //用户同意别人的交换 这2个物品已确认  其他人申请这2个物品 或者 这2个物品用于申请他人物品 都改成2取消

    int rejectMyChangeRespondent(Map<String,Object>map);//用户拒绝别人的交换 修改chanapply changetype=2 即可

    int saveapplyerexpressid(Map<String,Object>map);//保存申请者提交的物流编号

    int saveresponderexpressid(Map<String,Object>map);//保存被申请者提交的物流编号


    int qryIsLike(Map<String,Object>map);  //判断这个物品是不是被我收藏
    int saveLike(Map<String,Object>map);//保存收藏
    int removeLike(Map<String,Object>map);//取消收藏
    List <Map<String,Object>> qryMyLike(String id);//我的物品收藏列表

    List<Map<String,Object>> allChangeHistory(); //系统所有物品交换的记录
}
